]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
screenshot: Cache ScreencastSupported property
authorFlorian Müllner <fmuellner@gnome.org>
Sun, 6 Nov 2022 12:06:44 +0000 (13:06 +0100)
committerMarge Bot <marge-bot@gnome.org>
Wed, 9 Nov 2022 11:15:04 +0000 (11:15 +0000)
The screencast service shuts down when not in use, so it is almost
certainly not running when handling the screencast shortcut.

Instead of making sure the service is restarted, just cache the
property when initializing the proxy.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2533>

js/ui/screenshot.js

index a01fbe3c94d81a6d8947a6b52d22b2ef33e44700..b2ea6fad2ba5ba06d7861af1828e9f1cb820a737 100644 (file)
@@ -1017,6 +1017,7 @@ var ScreenshotUI = GObject.registerClass({
         });
 
         this._screencastInProgress = false;
+        this._screencastSupported = false;
 
         this._screencastProxy = new ScreencastProxy(
             Gio.DBus.session,
@@ -1028,7 +1029,8 @@ var ScreenshotUI = GObject.registerClass({
                     return;
                 }
 
-                this._castButton.visible = this._screencastProxy.ScreencastSupported;
+                this._screencastSupported = this._screencastProxy.ScreencastSupported;
+                this._castButton.visible = this._screencastSupported;
             });
 
         this._lockdownSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.lockdown' });
@@ -1450,7 +1452,7 @@ var ScreenshotUI = GObject.registerClass({
         if (this._screencastInProgress)
             return;
 
-        if (mode === UIMode.SCREENCAST && !this._screencastProxy.ScreencastSupported)
+        if (mode === UIMode.SCREENCAST && !this._screencastSupported)
             return;
 
         this._castButton.checked = mode === UIMode.SCREENCAST;